package controller;

import com.google.gson.Gson;
import model.Updatelog;
import services.UpdatelogService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/user5")//访问接口的名字
public class UpdatelogController extends HttpServlet {
    private static Gson gson=new Gson();//第三方插件，返回gson格式的插件

    @Override//重写
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//请求 响应  针对的是前端页面的get方法
        //用户所做的操作
        String oper=req.getParameter("oper");//获取地址栏当中oper后边的值   请求对象实例化
        System.out.println("获取地址栏当中的数据为："+oper);//能否获取地址栏中的值
        //updatelog表的数据
        String name=req.getParameter("name");
        String updater=req.getParameter("updater");
        /*String updatetetime=req.getParameter("updatetetime");*/

        Updatelog updatelog=new Updatelog();////updatelog表实例化

        updatelog.setName(name);
        updatelog.setUpdater(updater);//调用set方法拿到给创建人设置的值
        /*updatelog.setUpdatetetime(updatetetime);*/


        List<Updatelog> tempReturn1 = null;//返回集合操作结果  （查询时候使用）没有new的还要进行实例化



        System.out.println("获取地址栏当中的数据为："+name);
        int tempReturn=0;//返回int操作结果  （增删改时使用）
        UpdatelogService updatelogService= new UpdatelogService();//实例化业务功能类

        if(oper!=null){//判断地址栏输入的oper不等于空    选择要做的操作

            //操作的内容
            switch (oper){
                case "1":
                    //查询
                    tempReturn1=updatelogService.getAll(updatelog);//调用service层的getall方法 返回查询结果
                    break;
                case "2":
                    //添加
                    tempReturn=updatelogService.add(updatelog);//调用service层的add方法  返回添加结果
                    break;
                case "3":
                    //修改
                    String updatelogid=req.getParameter("updatelogid");//主键  修改时必须获取表中主键（地址栏中必须有该参数）
                    updatelog.setUpdatelogid(Integer.parseInt(updatelogid));//强制类型转换  给实体主键赋值
                    System.out.println(updatelogid);
                    tempReturn=updatelogService.update(updatelog);//调用service层的update方法  返回修改结果
                    break;
                case "4":
                    //删除
                    String updatelogid1=req.getParameter("updatelogid");//主键  删除时必须获取表中主键（地址栏中必须有该参数）
                    if(updatelogid1!=null){
                        updatelog.setUpdatelogid(Integer.parseInt(updatelogid1));//强制类型转换  给实体主键赋值
                        System.out.println(updatelogid1);
                        tempReturn=updatelogService.del(updatelog);//调用service层的del方法  返回删除结果

                    }
                    break;
            }
        }
        //设置返回信息
        //将所有的返回值都写入到map当中
        Map map=new HashMap();//
        map.put("code","1");//返回编号：1：成功；0：失败；-1：项目负责人重复
        map.put("statue","success");
        if(tempReturn1!=null) {
            map.put("results", tempReturn1);//成功的结果 操作的结果
        }else {
            map.put("results", tempReturn);
        }
        //将数据转换为gson格式进行发送
        String rs=gson.toJson(map);
        //将数据发送后并进行打印
        resp.getWriter().print(rs);
    }

    @Override
    protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{//请求  响应  针对的是前端页面的post方法
        super.doGet(req,resp);//调用父类方法
    }
}
